'use strict';

/* Controllers */
  // signin controller
app.controller('SigninFormController', ['$scope', '$http', '$state', 'user_info', function($scope, $http, $state, user_info) {
    user_info.check().then(function(){
        $scope.qrCode = "";
        $scope.authError = null;
        $scope.info = null;
        $scope.count = "05:00";
        var es = new EventSource('/app/api/login');
        es.onerror = function(e) {
            console.log('error', e);
            $scope.count = "05:00";
            $scope.$apply();
        };
        es.addEventListener('qrCode',function(e){
            var data = JSON.parse(e.data);
            console.log(data.url);
            $scope.qrCode = data.url;
            $scope.$apply();
        });
        es.addEventListener('count',function(e){
            $scope.count = e.data;
            $scope.$apply();
        });
        es.addEventListener('info',function(e){
            $scope.info = e.data;
            $scope.$apply();
        });
        es.addEventListener('user',function(e){
            var info = JSON.parse(e.data);
            window.appInfo.user = info;
            // es.close();
            $http.get('/app/api/getSession/' + info.newEventKey)
                .then(function(response) {
                    $state.go('app.dashboard');
                }, function(x) {
                    $scope.authError = 'Server Error';
                });
        });
        es.addEventListener('pack',function(e){
            user_info.setPack(JSON.parse(e.data));
        });
        es.addEventListener('end',function(){
            setTimeout(function(){es.close();}, 3 * 1000);
        });
    });

    particlesJS('particles-js',
        {
            "particles": {
                "number": {
                    "value": 80,
                    "density": {
                        "enable": true,
                        "value_area": 800
                    }
                },
                "color": {
                    "value": "#98a6ad"
                },
                "shape": {
                    "type": "circle",
                    "stroke": {
                        "width": 0,
                        "color": "#000000"
                    },
                    "polygon": {
                        "nb_sides": 5
                    },
                    "image": {
                        "src": "img/github.svg",
                        "width": 100,
                        "height": 100
                    }
                },
                "opacity": {
                    "value": 0.5,
                    "random": false,
                    "anim": {
                        "enable": false,
                        "speed": 1,
                        "opacity_min": 0.1,
                        "sync": false
                    }
                },
                "size": {
                    "value": 5,
                    "random": true,
                    "anim": {
                        "enable": false,
                        "speed": 40,
                        "size_min": 0.1,
                        "sync": false
                    }
                },
                "line_linked": {
                    "enable": true,
                    "distance": 150,
                    "color": "#98a6ad",
                    "opacity": 0.4,
                    "width": 1
                },
                "move": {
                    "enable": true,
                    "speed": 6,
                    "direction": "none",
                    "random": false,
                    "straight": false,
                    "out_mode": "out",
                    "attract": {
                        "enable": false,
                        "rotateX": 600,
                        "rotateY": 1200
                    }
                }
            },
            "interactivity": {
                "detect_on": "canvas",
                "events": {
                    "onhover": {
                        "enable": true,
                        "mode": "grab"
                    },
                    "onclick": {
                        "enable": true,
                        "mode": "push"
                    },
                    "resize": true
                },
                "modes": {
                    "grab": {
                        "distance": 400,
                        "line_linked": {
                            "opacity": 1
                        }
                    },
                    "bubble": {
                        "distance": 400,
                        "size": 40,
                        "duration": 2,
                        "opacity": 8,
                        "speed": 3
                    },
                    "repulse": {
                        "distance": 200
                    },
                    "push": {
                        "particles_nb": 4
                    },
                    "remove": {
                        "particles_nb": 2
                    }
                }
            },
            "retina_detect": true,
            "config_demo": {
                "hide_card": false,
                "background_color": "#98a6ad",
                "background_image": "",
                "background_position": "50% 50%",
                "background_repeat": "no-repeat",
                "background_size": "cover"
            }
        }
    );
    var update = function() {
        requestAnimationFrame(update);
    };
    requestAnimationFrame(update);
}]);
